// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "Data/MenuInteractionInterface.h"
#include "Data/MissionEnum.h"
#include "SingleQuestCategoryWidget.generated.h"

DECLARE_MULTICAST_DELEGATE_OneParam(FQuestCategoryOnClick, USingleQuestCategoryWidget*);
DECLARE_MULTICAST_DELEGATE_OneParam(FQuestCategoryOnHovered, USingleQuestCategoryWidget*);
DECLARE_MULTICAST_DELEGATE(FQuestCategoryOnUnHovered);
UCLASS()
class MISCELLANEOUSPROJECT_API USingleQuestCategoryWidget : public UUserWidget, public IMenuInteractionInterface
{
	GENERATED_BODY()
public:
	virtual void NativeOnInitialized() override;
	virtual void NativePreConstruct() override;
	virtual void SimulateClick() override;
public:
	void UpdateAmount(int32 Amount);
	void SetUnSelected();
	void SetSelected();
	UFUNCTION()
	void ClickEvent();
	UFUNCTION()
	void HoveredEvent();
	UFUNCTION()
	void UnHoveredEvent();
public:
	UPROPERTY(meta = (BindWidget))
	class UBorder* AllIcon;
	UPROPERTY(meta = (BindWidget))
	class UButton* AllButton;
	UPROPERTY(meta = (BindWidget))
	class UTextBlock* AllText;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Default)
	UMaterialInstance* Icon;

	FQuestCategoryOnClick QuestCategoryOnClick;
	FQuestCategoryOnHovered QuestCategoryOnHovered;
	FQuestCategoryOnUnHovered QuestCategoryOnUnHovered;

	FText CategoryLabel;
	int32 Amount;
	EQuestCategoryStatus QuestCategory;

};
